
<!-- ex : fr-fr-->
<xsl:variable name="lang">
	<xsl:call-template name="i10n">
		<xsl:with-param name="local" select="/sun-wars/@lang"/>
	</xsl:call-template>
</xsl:variable>

<!-- ex : ../lang/fr/fr/template-game.xml-->
<xsl:variable name="name-i10n-template-game">
	<xsl:call-template name="name-i10n">
		<xsl:with-param name="name-doc" select="'template-game'"/>
	</xsl:call-template>
</xsl:variable>

<xsl:variable name="i18n-template-game" select="document($name-i10n-template-game)/texts"/>


<!-- récupère la localisation (ex : fr-fr)-->
<xsl:template name="i10n">
	<xsl:param name="local"/>

	<xsl:choose>
		<xsl:when test="boolean($local)">
			<xsl:variable name="before" select="substring-before($local,'-')"/>
			<xsl:choose>
				<xsl:when test="boolean($before)">
					<xsl:choose>
						<xsl:when test="boolean(substring-after($lang,'-'))">
							<xsl:value-of select="$local"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="concat($before,'-',$before)"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:otherwise>
					<xsl:value-of select="concat($local,'-',$local)"/>
				</xsl:otherwise>
			</xsl:choose>
		</xsl:when>
		<xsl:otherwise>fr-fr</xsl:otherwise>
	</xsl:choose>
</xsl:template>


<!--récupère le nom du fichier de localisation (ex : ../lang/fr/fr/template-game.xml)-->
<xsl:template name="name-i10n">
	<xsl:param name="name-doc"/>

	<xsl:value-of select="concat('../lang/', substring-before($lang,'-'), '/', substring-after($lang,'-'), '/', $name-doc, '.xml')"/>
</xsl:template>


<!--affiche un message désigné par un id dans le document doc
	Si le text contient un nœud params alors ces enfant seront transformés en attribut
	Dans le cas ou l'id n'est pas trouvé un message d'"erreur" remplace le texte-->
<xsl:template name="i18n">
	<xsl:param name="doc"/>
	<xsl:param name="id"/>

	<xsl:variable name="text" select="$doc/text[@id=$id]"/>
	<xsl:choose>
		<xsl:when test="boolean($doc) and boolean($text)">
			<xsl:choose>
				<xsl:when test="boolean($text/params)">
					<xsl:for-each select="$text/params/*">
						<xsl:attribute name="{name()}"><xsl:value-of select="text()"/></xsl:attribute>
					</xsl:for-each>
					<xsl:value-of select="$text/text"/>
				</xsl:when>
				<xsl:otherwise>
					<xsl:value-of select="$text"/>
				</xsl:otherwise>
			</xsl:choose>
		</xsl:when>
		<xsl:otherwise>
			<xsl:variable name="error" select="document(concat('../lang/', substring-before($lang,'-'), '/i18n.xml'))/texts/text[@id='text-not-exists']"/>
			<xsl:if test="boolean($error) = false">
				<xsl:value-of select="document('../lang/fr/i18n.xml')/texts/text[@id='text-not-exists']"/>
			</xsl:if>
			<xsl:value-of select="$error"/>
		</xsl:otherwise>
	</xsl:choose>
</xsl:template>